package com.dss.auto_deploy.domain;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.format.annotation.DateTimeFormat;

import java.util.Date;
/**
* @Description:docker部署项目模块配置实体类
* @author dongshoushan
* @date 2022-09-22 14:38:57
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@TableName("adm_docker_deploy")
@ApiModel(value = "docker部署项目模块配置")
public class AdmDockerDeploy {

    /**
    * 主键
    */
    @ApiModelProperty(value = "主键")
    @TableId(type = IdType.AUTO)
    private Long id;
    private Long nacosId;
    @ApiModelProperty(value = "0启用1停用")
    private Integer enable;
    private Long namespaceId;

    private String springProfilesActive;
    /**
    * 项目id
    */
    @ApiModelProperty(value = "项目id")
    private Long projectId;

    /**
    * 部署docker
    */
    @ApiModelProperty(value = "部署docker")
    private Long dockerId;


    /**
     * 挂载路径，前面宿主机，后面容器的，多个逗号拼接
     */
    @ApiModelProperty(value = "挂载路径")
    private String mountThePath;
    /**
    * 模块名称
    */
    @ApiModelProperty(value = "模块名称")
    private String moduleName;

    /**
    * 容器id
    */
    @ApiModelProperty(value = "容器id")
    private String containerId;


    /**
    * 当前部署版本号
    */
    @ApiModelProperty(value = "当前部署版本号")
    private String tag;

    /**
    * 本地开发包位置
    */
    @ApiModelProperty(value = "本地开发包位置")
    private String localFile;

    /**
    * 构建镜像目标位置
    */
    @ApiModelProperty(value = "构建镜像目标位置")
    private String remoteTargetDirectory;

    /**
    * 最近部署时间
    */
    @ApiModelProperty(value = "最近部署时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date lastDeployDate;

    /**
    * 0后端1前端
    */
    @ApiModelProperty(value = "0后端1前端")
    private Integer type;

    /**
    * 部署状态：0空闲 1编译中 2代码上传 3镜像构建中 4.构建完毕 5.push仓库 6.拉取镜像 7.开始启动新容器 8.启动成功  9.maven编译失败 10.docker部署失败
    */
    @ApiModelProperty(value = "部署状态：0空闲 1编译中 2代码上传 3镜像构建中 4.构建完毕 5.push仓库 6.拉取镜像 7.开始启动新容器 8.启动成功  9.maven编译失败 10.docker部署失败")
    private Integer deployStatus;

    /**
    * 上传速度
    */
    @ApiModelProperty(value = "上传速度")
    private String speed;

    /**
    * 已上传大小
    */
    @ApiModelProperty(value = "已上传大小")
    private String transfered;

    /**
    * 总大小
    */
    @ApiModelProperty(value = "总大小")
    private String fileSize;

    /**
    * 进度
    */
    @ApiModelProperty(value = "进度")
    private String speedOfProgress;
    private String jdkVersion;
    private String envs;

}
